public class Main {
    public static void fun1(Animal a){

    }

    public static Animal fun2(){
        Dog dog=new Dog("小黑",3);
        return dog;
    }

    public static void main(String[] args) {
        //多态的三种前提：
        //1.必须在继承体系内
        //2.子类必须对父类中的方法进行重写
        //3.通过父类的引用调用重写的方法

        //了解多态的两种前置：
        //1.向上转型->父类引用 引用了子类对象 qianzhi_Main1
        //2.动态绑定

    }
}

class Animal{
    public String name;
    int age;

    public Animal() {
    }

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void eat(){
        System.out.println(name + " 正在吃...");
    }

}

class Dog extends Animal{
    public Dog() {
    }

    public Dog(String name,int age){
        super(name,age);
    }

    public void bark(){
        System.out.println(name + " 正在叫...");
    }

}
